//*****************************************************************************
// JFab (http://code.google.com/p/jfab)
// Copyright (c) 2011 JFab.org
// Admin jfab@jeffreythompson.net
//
// See the file "LICENSE.txt" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//*****************************************************************************

package org.jfab.core.comparator;

/**
 * Defines methods required by a comparator injector.
 */
public interface ComparatorInjector
{
    /**
     * @return a new code generator class comparator.
     */
    CGClassComparator injectCGClassComparator();

    /**
     * @return a new code generator constructor comparator.
     */
    CGConstructorComparator injectCGConstructorComparator();

    /**
     * @return a new code generator enum comparator.
     */
    CGEnumComparator injectCGEnumComparator();

    /**
     * @return a new code generator field comparator.
     */
    CGFieldComparator injectCGFieldComparator();

    /**
     * @return a new code generator interface comparator.
     */
    CGInterfaceComparator injectCGInterfaceComparator();

    /**
     * @return a new code generator method comparator.
     */
    CGMethodComparator injectCGMethodComparator();

    /**
     * @return a new code generator method declaration comparator.
     */
    CGMethodDeclarationComparator injectCGMethodDeclarationComparator();
}
